Amazon Q DeveloperでCloudFormationのエラー原因調査の支援が可能になりました #AWSreInvent

Amazon Q DeveloperでCloudFormationのエラー原因調査の支援が可能になりました #AWSreInvent

Amazon Q DeveloperでCloudFormationのエラーが発生した場合に、「Diagnose with Amazon」ボタンからQを使った調査が可能になりました
Clock Icon2024.12.10

はじめに

製造ビジネステクノロジー部の佐藤智樹です。

今回は先月発表されたAmazon Q Developerを使用していると、CloudFormation上でエラーが発生したときの原因調査を支援してくれる機能について紹介します。実際の画面やエラーになるコードを用意してどのように役に立つのかをご紹介します。

https://aws.amazon.com/jp/about-aws/whats-new/2024/11/cloudformation-troubleshooting-q-developer-assistance/

注意

現状この機能が表示されるには、いくつかの条件が必要なのでその点はご留意ください(2024/12/10時点)

  • 特定のエラー条件の場合(例:ロール作成時にマネージドポリシーの指定に誤りがある場合)
  • コンソールの言語設定がEnglish(US)/English(UK)になっている場合
  • Cfnをデプロイしたリージョンがバージニア北部(us-east-1)/オレゴン(us-west-2)の場合

やってみた

まずは下準備として、Amazon Q Developerを有効化します。これはIdCのインスタンス上のユーザに対して有効化する必要があるので、管理アカウントやIdCを委任したアカウントに入って実施します。ログインしたら以下のステップを実施します。

  • IdCでユーザ作成(既存ユーザでも可)
  • ユーザに対して、Amazon Q Developerを有効化(IdCと別リージョンで可)

詳細は以下の記事を参考にしてください

https://qiita.com/hayao_k/items/f0aea399d012f7c22459

サンプルコード

次にはエラーを起こすための実装を記載します。今回は、例にも書いたようにロールを作成する際に、指定するマネージドポリシーをあえて存在しないものに設定します。

lib/q-cfn-test-stack.ts
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as iam from 'aws-cdk-lib/aws-iam';

export class QCfnTestStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    new iam.Role(this, 'MyRole', {
      assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
      managedPolicies: [
        {
          managedPolicyArn: 'arn:aws:iam::aws:policy/service-role/HogeRole', //不正なロール
        }
      ],
    });
  }
}

上記を実行してエラーを出します。

% npx cdk deploy

スクリーンショット 2024-12-10 18.29.57.png

Cfnの画面からエラーから「Events - updated」タブを開くと「Diagnose with Amazon」ボタンが表示されます。

スクリーンショット 2024-12-10 18.31.15.png

ボタンを押下すると以下のように分析が始まり、原因特定のためのヒントが表示されます。

スクリーンショット 2024-12-10 18.32.12.png

所感

表示されるまでの限定条件が難しいですが何とか表示できました。この機能が色々なリソースや言語に広まると、もっと便利になるかと感じました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.